package com.qfmy.core.pojo.entity;

import lombok.Getter;
import lombok.ToString;

/**
 * @ClassName: ErrorCode
 * @author： zhengjt
 * @data： 2022/4/10 14:35
 * @version：1.0
 * @描述： 错误代码类
 *  暂定：
 *      1000-2000 系统错误
 *      2000-3000 用户/业务错误
 *      3000-4000 任务错误
 */
@Getter
@ToString
public enum  ErrorCode {
    //  接口匹配失败
    NOT_FOUND(1000,"接口匹配失败"),
    //  系统返回未知错误
    SERVER_ERROR(1001,"系统错误，请稍后重试！"),
    //  业务执行异常
    ERROR_BUSINESS(1002,"业务繁忙，请稍后重试！"),
    //  网络不通或查询时间过久等
    ERROR_NETWORK(1003,"网络繁忙，请稍后重试！"),
    //  系统发生未知异常；通常用于非自定义异常情况
    ERROR_UNKNOWN(1999,"系统发生未知异常，请稍后再试"),
    //  账号出错
    NEVER_USER(2000,"查无此用户"),
    //  账号密码不匹配
    ERROR_LOGIN(2001,"用户名或密码错误，请重试!"),
    //  用户已被禁用
    USER_STATUS_DISABLE(2002, "用户已被禁用"),
    //  用户已被锁定
    USER_STATUS_LOCK(2003, "用户已被锁定"),
    //  用户权限不足
    USER_NEVER_PERMISSIONS(2004,"用户权限不足!"),
    //  登录失效
    USER_LOGIN_FAIL(2004,"用户登录已失效，请重新登录!"),

    //  访问接口，必填参数为空
    NULL_PARAM(2100,"参数为空，请重试！"),
    //  token生成失败
    TOKEN_CREATE_ERROR(2400,"token生成失败"),
    //  token解析失败
    TOKEN_PARSE_ERROR(2401,"token解析失败"),
    //  token不存在
    TOKEN_NEVER(2402,"token不存在"),
    //  token失效
    TOKEN_INVALID(2403,"token已失效"),
    //  token过期
    TOKEN_EXPIRED(2404,"token已过期"),
    //  文件上传异常
    FILE_ERROR(2500,"文件上传发生未知异常"),
    //  文件大小超出默认最大值
    FILE_MAX(2501,"文件过大"),
    //  文件为空异常
    FILE_NULL(2502, "文件为空，请确认后重新上传！"),

    ;

    private Integer code;
    private String message;

    ErrorCode(Integer code, String message) {
        this.code = code;
        this.message = message;
    }
}
